PTA 数组 7-5 按字母顺序排列出场国家名称

从键盘输入多个国家的名称,编写程序按字母顺序排列出场次序,并按出场顺序输出各国家名称。

输入格式:
第1行输入1个整数n(0≤n≤20),表示出场国家数量;之后 n行,每行输入1个国家名称(国家名称长度不超过20,可含空格)。

输出格式:
按字母序输出n行国家名称。若输入国家数n不合题意,则输出“Data Error”;若国家数为0,无输出。
输入样例:

5
Romania
United Kingdom
America
China
Brazil

输出样例:

America
Brazil
China
Romania
United Kingdom

代码:

#include<stdio.h>
int main()
{
	int n;
	scanf("%d", &n);
	char c[20][21];
	if (n == 0)//若国家数为0,无输出
	{
		return 0;
	}
	if (n > 20 || n < 0)//若输入国家数n不合题意,则输出“Data Error”
	{
		printf("Data Error");
		return 0;
	}
	gets(c[0]);//gets用法,若不写该行,下面的循环将读取一个换行符作为c[0]
	for (int i = 0; i < n; i++)
	{
		gets(c[i]);
	}
	char temp[20];
	for (int i = 0; i < n-1; i++)//比较法排序
	{                     
		for (int j = i + 1; j < n; j++)
		{
			if (strcmp(c[i], c[j]) > 0)
			{  
				strcpy(temp, c[i]);
				strcpy(c[i], c[j]);
				strcpy(c[j], temp);
			}
		}
	}
	for (int i = 0; i < n; i++)
	{
		puts(c[i]);
	}
	return 0;
}
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值